home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib04.dsk / APPLE HI-RES CLOCK.bas < prev    next >
BASIC Source File  |  2023-02-26  |  4KB  |  86 lines

  1. 10  DATA  173,48,192,136,208,5,206,13,3,240,9,202,208,245,174,12,3,76,14,3,96
  2. 12  FOR TT = 782 TO 802: READ PO
  3. 14  POKE TT,PO
  4. 16  NEXT TT
  5. 20  HGR : HOME : HCOLOR= 3
  6. 30 C = 55
  7. 40 I = 140:H = 80
  8. 50  FOR A = 5 TO 154: HPLOT 20,A TO 259,A: NEXT 
  9. 60  HPLOT 0,0 TO 279,0 TO 279,159 TO 0,159 TO 0,0: HCOLOR= 0
  10. 70  FOR A = 15 TO 145: HPLOT 73,A TO 206,A: NEXT 
  11. 80  HCOLOR= 3
  12. 90  FOR R = 450 TO 90  STEP  -6
  13. 100 A = I + COS(R/180 *3.14159) *C:B = H - SIN(R/180 *3.14159) *C
  14. 110  HPLOT A,B
  15. 120  IF R/30 =  INT(R/30)  THEN A = I + COS(R/180 *3.14159) *(C -4):B = H - SIN(R/180 *3.14159) *(C -4): HPLOT  TO A,B
  16. 130  NEXT R
  17. 140  HPLOT 134,17 TO 136,17 TO 136,23: HPLOT 134,23 TO 138,23: HPLOT 142,17 TO 146,17 TO 146,20 TO 142,20 TO 142,23 TO 146,23
  18. 150  HPLOT 142,137 TO 138,137 TO 138,143 TO 142,143 TO 142,140 TO 138,140
  19. 160  HPLOT 78,83 TO 82,83 TO 82,77 TO 78,77 TO 78,80 TO 81,80
  20. 170  HPLOT 197,77 TO 201,77 TO 201,83 TO 197,83: HPLOT 198,80 TO 200,80
  21. 180  VTAB 21: INPUT "WOULD YOU LIKE AN ALARM?";AN$: IF  LEFT$(AN$,1) = "Y"  THEN 200
  22. 190 A = 0: GOTO 230
  23. 200  PRINT "WHAT TIME SHOULD IT RING?": INPUT "HOUR,MINUTES:";A,B: IF A >12  OR A <1  OR B <0  OR B >59  THEN 200
  24. 210  HOME : VTAB 21
  25. 220 A =  INT(A):B =  INT(B):C =  INT(C)
  26. 230  PRINT "WHAT TIME IS IT ?": INPUT "HOURS,MINUTES:";D,E: IF D <1  OR D >12  OR E <0  OR E >59  THEN 230
  27. 240 D =  INT(D):E =  INT(E)
  28. 250  HOME 
  29. 260 U = 450 -(D *30):M = 450 -(E *6)
  30. 270 YY = U
  31. 280  VTAB 21
  32. 290  INPUT "SHOULD THERE BE A CHIME ON THE HOUR? ";I$: IF  LEFT$(I$,1) = "Y"  THEN CH = 1
  33. 300  HOME 
  34. 310  IF A = 0  THEN 350
  35. 314 B$ =  STR$(B)
  36. 315  IF B <10  THEN B$ = "0" +B$
  37. 320  VTAB 21: INVERSE : PRINT " ALARM WILL RING AT "A":"B$" "
  38. 330  NORMAL 
  39. 340 A = 450 -(A *30):B = 450 -(B *6)
  40. 345  IF A = 90  THEN A = 450
  41. 350  REM 
  42. 360 MA = I + COS(M/180 *3.14159) *47:MB = H - SIN(M/180 *3.14159) *47
  43. 370 MA =  INT(MA +.5):MB =  INT(MB +.5)
  44. 380  HPLOT I,H TO MA,MB
  45. 390 U = YY -( INT((450 -M)/6)/2)
  46. 400 U =  INT(U +.5)
  47. 410 UA = I + COS(U/180 *3.14159) *38:UB = H - SIN(U/180 *3.14159) *38
  48. 420 UA =  INT(UA +.5):UB =  INT(UB +.5)
  49. 430  HPLOT I,H TO UA,UB
  50. 440  IF TE = 1  THEN TE = 0: GOTO 581
  51. 450  IF TE = 2  THEN TE = 0: GOTO 640
  52. 460 S = 450
  53. 470 SX = I + COS(S/180 *3.14159) *20:SY = H - SIN(S/180 *3.14159) *20
  54. 480 SX =  INT(SX +.5):SY =  INT(SY +.5)
  55. 490  HPLOT I,H TO SX,SY
  56. 494  IF R = 1  THEN S = S -(EX *6):R = 0:EX = 0
  57. 495  FOR EE = 1 TO 870: NEXT 
  58. 500  HCOLOR= 0: HPLOT I,H TO SX,SY: HCOLOR= 3: HPLOT I,H TO MA,MB: HPLOT I,H TO UA,UB:S = S -6: IF S < = 90  THEN 520
  59. 510  GOTO 470
  60. 520  HCOLOR= 0: HPLOT I,H TO UA,UB: HPLOT I,H TO MA,MB: HCOLOR= 3
  61. 530 PP =  PEEK( -16336) + PEEK( -16336) - PEEK( -16336)
  62. 540 M = M -6: IF M = 90  THEN M = 450:YY = YY -30:U = YY: IF YY < = 90  THEN YY = YY +360:U = YY
  63. 550  IF CH = 1  AND M = 450  THEN  GOSUB 630
  64. 560  IF M = B  AND YY = (A)  THEN 580
  65. 570  GOTO 350
  66. 580 TE = 1: GOTO 350
  67. 581  POKE  -16368,0
  68. 582 R = 1
  69. 585  FOR II = 1 TO 25: POKE 780,130: POKE 781,150: CALL 782: NEXT 
  70. 590 EX = EX +10
  71. 593  IF  PEEK( -16384) >127  THEN 614
  72. 595  FOR UU = 1 TO 10: FOR II = 1 TO 20:P =  PEEK( -16336) + PEEK( -16336) + PEEK( -16336) - PEEK( -16336) - PEEK( -16336): NEXT II,UU
  73. 600 EX = EX +7
  74. 610  IF  PEEK( -16384) >127  THEN 614
  75. 612  IF EX > = 240  THEN 614
  76. 613  GOTO 585
  77. 614  HCOLOR= 0: HPLOT I,H TO MA,MB: HPLOT I,H TO UA,UB: HCOLOR= 3
  78. 615  IF EX >59  THEN EX = EX -60:M = M -6: IF M < = 90  THEN M = 450:YY = YY -30:U = YY: IF YY < = 90  THEN YY = 450:U = YY
  79. 620  GOTO 350
  80. 630 TE = 2: GOTO 350
  81. 640  IF (450 -U)/30 <1  THEN  FOR GG = 1 TO 12: GOTO 655
  82. 650  FOR GG = 1 TO (450 -U)/30
  83. 655  FOR O = 50 TO 100  STEP 10
  84. 660  POKE 780,0: POKE 781,160: CALL 782: NEXT : FOR WA = 1 TO 50: NEXT : NEXT 
  85. 665 EX = (GG -1) *2.75:R = 1
  86. 670  RETURN